package com.qinggeng.project.tool.file.service;

import com.qinggeng.project.tool.file.domain.SysFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件存储Service接口
 * 
 * @author qinggeng
 * @date 2020-02-11
 */
public interface ISysFileService 
{
    /**
     * 查询文件存储
     * 
     * @param fileId 文件存储ID
     * @return 文件存储
     */
    public SysFile selectSysFileById(Long fileId);

    /**
     * 查询文件存储列表
     * 
     * @param sysFile 文件存储
     * @return 文件存储集合
     */
    public List<SysFile> selectSysFileList(SysFile sysFile);

    /**
     * 新增文件存储
     * 
     * @param sysFile 文件存储
     * @return 结果
     */
    public int insertSysFile(SysFile sysFile);

    /**
     * 修改文件存储
     * 
     * @param sysFile 文件存储
     * @return 结果
     */
    public int updateSysFile(SysFile sysFile);

    /**
     * 批量删除文件存储
     * 
     * @param fileIds 需要删除的文件存储ID
     * @return 结果
     */
    public void deleteSysFileByIds(Long[] fileIds);

    /**
     * 删除文件存储信息
     * 
     * @param fileId 文件存储ID
     * @return 结果
     */
    public int deleteSysFileById(Long fileId);

    /**
     * 上傳文件
     * @param multipartFile 文件
     * @return
     */
    public SysFile upload(MultipartFile multipartFile,Boolean domain);

    /**
     * 同步数据
     */
    public void synchronize();

    /**
     * 根据文件路径删除文件
     * @param path
     */
    void deleteSysFileByPath(String path);
}
